home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
program
/
progem.arc
/
sources.arc
/
GEMC10.C
next >
Wrap
Text File
|
1987-10-05
|
1KB
|
46 lines
>>>>>>>>>>> Demonstration of byte alignment of window interior <<<<<<<<<<<
#define FEATURES 0x0fef /* what border features are used */
WORD msg[8]; /* message from evnt_multi */
GRECT work_area; /* defines working area */
WORD w_hndl; /* handle for window being changed */
wind_calc(1, FEATURES, msg[4], msg[5], msg[6], msg[7],
&work_area.g_x, &work_area.g_y, &work_area.g_w,
&work_area.g_h);
work_area.g_x = align_x(work_area.g_x);
work_area.g_w = align_x(work_area.g_w);
wind_calc(0, FEATURES, work_area.g_x, work_area.g_y,
work_area.g_w, work_area.g_h, &msg[4], &msg[5],
&msg[6], &msg[7]);
wind_set(w_hndl, WF_CXYWH, msg[4], msg[5], msg[6], msg[7]);
>>>>>>>>>>>>>>>>>>>>> Subroutine for above <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
WORD
align_x(x) /* forces word alignment for column position */
WORD x; /* rounding to nearest word */
{
return((x & 0xfff0) + ((x & 0x0008) ? 0x0010 : 0));
}
>>>>>>>>>>>>>>>>>>>>> Standard v_gtext binding <<<<<<<<<<<<<<<<<<<<<<<<<
WORD
v_gtext( handle, x, y, string)
WORD handle, x, y;
BYTE *string;
{
WORD i;
ptsin[0] = x;
ptsin[1] = y;
i = 0;
while (intin[i++] = *string++) /* Copy characters to intin */
; /* There is NO error checking! */
contrl[0] = 8;
contrl[1] = 1;
contrl[3] = --i;
contrl[6] = handle;
vdi();
}